#pragma once

#include <vector>
using namespace std;
class Particle;
class Emitter
{
	float m_fTimer;
public:
	Emitter(int NumOfParticles = 0, bool Looping = false, float Life = 0.0f, const char* ImageID = "..\\Resource\\Graphics\\Droid_Sans_Mono.png",
		float PosX = 0.0f, float PosY = 0.0f, int Shape = 0, float SRate = 0.0f, float SRange = 0.0f, int SA = 0,
		int SR = 0, int SG = 0, int SB = 0, int EA = 0, int ER = 0, int EG = 0, int EB = 0, float StartVelx = 0.0f,
		float StartVely = 0.0f, float EndVelx = 0.0f, float EndVely = 0.0f, float SRot = 0.0f, float ERot = 0.0f,
		float SScale = 0.0f, float EScale = 0.0f);
	~Emitter(void);
	void Update(float fElapsedTime);
	void Render();
	void LoadNewParticles(int size);
	void RemoveParticle(int INDEX);


	const char* NameOfImageID;
	vector<Particle*>	m_vTotalParticles;
	int					m_nNumOfParticles;
	float				m_fCurrLife;

	bool				m_bIsLooping;
	
	int					m_nPartImageID;
	float					m_fPosX;
	float					m_fPosY;
	// 1 = Circle, 0 = Square
	int					m_nSpawnShape;

	float				m_fSpawnRate;
	float				m_fSpawnRange;
	

	//Start/End ARGB values
	int					m_nStartAlpha;
	int					m_nStartR;
	int					m_nStartG;
	int					m_nStartB;
	float				m_fStartVelX;
	float				m_fStartVelY;
	float				m_fStartRotation;
	float				m_fStartScale;

	int					m_nEndAlpha;
	int					m_nEndR;
	int					m_nEndG;
	int					m_nEndB;
	float				m_fEndVelX;
	float				m_fEndVelY;
	float				m_fEndRotation;
	float				m_fEndScale;




	
};

